package SparkRDD.RDD算子.Transformations.排序操作

import org.apache.spark.{SparkConf, SparkContext}
import org.junit.Test

/*
  * sortByKey 根据 RDD 的数据类型，按照 Key 排序
 */
class sortByKeyTest {
  val conf = new SparkConf().setMaster("local[6]").setAppName("sortBy")
  val sc   = new SparkContext(conf)

  @Test
  def sortByTest: Unit ={
    val source = sc.parallelize(Seq(("c",19),("s",12),("h",5),("a",24)))
    // 含有Key的RDD也可以使用sortBy方法排序，但是普通的RDD不能使用sortByKey排序
    source.sortBy(item => item._1)
      .collect()
      .foreach(println(_))
    println("-"*50)
    source.sortBy(item => item._2)
      .collect()
      .foreach(println(_))
    println("-"*50)
    // 使用sortByKey排序
    source.sortByKey()
      .collect()
      .foreach(println(_))
  }
}
